<?php
/**
 * @author: Gardennet
 * @date: 17-03-14
 */

namespace App\Services\Wechat;

use App\Facades\WechatService;

/**
 * 微信发送消息服务
 * Class WechatSms
 * @package App\Services\Wechat;
 */
Trait WechatMessage
{
    /**
     *
     * 购买成功(付款成功)提醒 (用于会员)
     * @param string|array $openid      粉丝openid
     * @param string $url         信息被点击后跳转的链接
     *
     * @param array $data
     * 内容:$data['detail']
     * 有效期:$data['validity_time']
     *
     * @param int $send_type   发送类型 （默认是模板消息）  1为模板信息 0为客服信息
     *
     * @return array
     */
    public function sendPaySuccessNoticeForBuyer($openid, array $data,string $url='',int $send_type=1) :array
    {
        if(empty($openid)){
            return ['code'=>1,'msg'=>'粉丝openid不能为空'];
        }

        if(empty($data['validity_time'])){
            return ['code'=>1,'msg'=>'有效期不能为空'];
        }

        if(empty($data['detail'])){
            return ['code'=>1,'msg'=>'内容不能为空'];
        }

        $data=[
            'name'=>['title' => '商品信息', 'value'=>$data['detail']."\n".'有效期至 '.date('Y-m-d H:i:s',$data['validity_time'])],
            'remark'=>['value'=>""],
        ];
        return $this->sendTemplate($openid,$data,$url,$send_type,'wechat_pay_success');
    }

    #------------------------------------------- 客服消息 -----------------------------------------------------#
    /**
     *
     * 订单提成通知(用于会员)
     *
     * @param string|array $openid      粉丝openid
     * @param string $url         信息被点击后跳转的链接
     *
     * @param $data
     * 摘要:$data['detail']
     * 时间:$data['reserve_time']
     *
     * @param int $send_type   发送类型 （默认是模板消息）  1为模板信息 0为客服信息
     *
     * @return array
     */
    public function sendOrderIncomeNoticeForBuyer($openid, array $data,string $url='',int $send_type=0) :array
    {
        if(empty($openid)){
            return ['code'=>1,'msg'=>'粉丝openid不能为空'];
        }

        if(empty($data['detail'])){
            return ['code'=>1,'msg'=>'摘要不能为空'];
        }

        if(empty($data['time'])){
            return ['code'=>1,'msg'=>'时间不能为空'];
        }

        $data=[
            'first'=>['value'=>'会员提醒'."\n".date('m月d日')."\n".'亲，您又成功分销出一张VIP超级魔卡！'."\n"],
            'keyword1'=>['title' => '摘要', 'value'=>$data['detail']],
            'keyword2'=>['title' => '时间', 'value'=>date('Y-m-d H:i',$data['time'])],
            'remark'=>['value'=>""],
        ];

        return $this->sendTemplate($openid,$data,$url,$send_type,'');
    }

    /**
     * 发送模板消息
     *
     * @param string|array $openid       粉丝openid
     * @param array $dataOrder       发送内容参数
     * @param string $url          信息被点击后跳转的链接
     * @param int $send_type   发送类型 （默认是模板消息）  1为模板信息 0为客服信息
     * @param string $type   消息类型 wechat_pay_success： 付款成功提醒
     *
     * @return array
     */
    protected function sendTemplate($openid,$dataOrder,$url,$send_type,$type) :array
    {
        $result=[];
        if($send_type==1){//模板信息
            $template_id = config('wechat.wechatPublic.'.$type);

            if(!empty($template_id)){
                $result = $this->sendTplMessage($openid,$template_id,$dataOrder,$url);//发送模板信息
            }
        }elseif($send_type==0){//客服信息
            $result = $this->sendCustomMessage($openid,$dataOrder,$url);//发送客服信息
        }

        return $result;
    }
}